iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 8
0
Modern Web

前端影片與直播筆記系列 第 8

Day08 DASH ( MPEG-DASH ) 直播協議簡介

  • 分享至 

  • xImage
  •  

今天來簡介 DASH 直播協議。

DASH 全名 Dynamic Adaptive Streaming over HTTP ,它是由 MPEG 開發的直播協議,因此 DASH 又稱為 MPEG-DASH

如果說 HLS 是蘋果為了反對 Flash 與 RTMP 衍生的直播協議,那 DASH 的出現就是為了與蘋果的 HLS 分庭抗禮, HLS 並非國際標準直播協議,只因為科技公司領導者:蘋果大推而成為主流 ( 雖然 HLS 確實有可取之處 )。相較 HLS 受制於蘋果私有, DASH 的修改比較嚴謹標準一點,因為它是真正的 國際規範標準 ,畢竟 MPEG 所屬的組織是 ISO(國際標準組織)

DASH 對影像的編碼限制不大,可使用大部分如 H.264、VP9 ...編碼影片,既然 DASH 是由 MPEG 研發的傳輸協議,最常被拿來傳輸的影片格式自然是 MP4 ( H.264 )。一個 DASH 的影片連結是這樣的:
https://s3.amazonaws.com/_bc_dml/example-content/sintel_dash/sintel_vod.mpd

我們可以藉由Native MPEG-Dash + HLS Playback來播放這個影片。

DASH 的原理與 HLS 類似,是將影片拆分成一個一個的小片段傳輸到前端播放,mpd 與 m3u8 一樣,播放器其實是藉此向後端索取一個一個的影片,並且依據 mpd 的設定,可以依照頻寬或使用者選擇,切換不同畫質影片。

雖然概念類似,但 DASH 小勝 HLS 的其中一點是,它的延遲性比 HLS 還少一點。
如同 m3u8 檔案,我們一樣可以將 mpd 下載下來,這次我以 Postman 為例,用 GET 試試:

可以看到 mpd 內容其實類似 XML,記錄了一些影片資訊,包含影片寬高、影片類型等等。

最後要注意的是,DASH 在瀏覽器的支援度不佳,比 HLS 還糟糕,如果我們沒有引入任何 Library 的話...

只有 Edge 能原生支援 DASH,慶幸的是前端現在可以透過 dash.js 幫助播放 DASH 影片。
 
 
 
 
 
參考
WIKI
MPEG 官方網站


上一篇
Day07 RTMP 直播協議簡介
下一篇
Day09 HTTP-FLV 簡介
系列文
前端影片與直播筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言